package auth

import (
	"goweb/ext/settings"
	"goweb/utils/commons"
	"fmt"
)

type Source struct {
	SourceId string `xorm:" notnull varchar(100) 'SourceId'"` //sourceId是一级来源的MD5
	// 如果一级来源下面二级来源token公用，sourceid就是一级来源算,如果不共用token,就用二级来源算
	SourceName    string `xorm:"varchar(100) 'SourceName'"`  //来源名称
	SourceSecId   string `xorm:"varchar(100) 'SourceSecId'"` //表示是一个大类的相同来源(eg:天猫淘宝)
	SourceSecName string `xorm:"varchar(100) 'SourceSecName'"`
	Flag          int    `xorm:"int(11) 'Flag'"` // 标记(是否踢出)
}

func GetAllSourceM() []SourceM {

	source := []Source{}

	find := conf.MasterDB.Find(&source)
	m := map[string][]string{}
	if commons.CheckErr(find) {
		for _, v := range source {
			m[v.SourceName] = append(m[v.SourceName], v.SourceSecName)
		}
	}

	var Data []SourceM
	s := SourceM{}
	for k, v := range m {
		s.SourceName = k
		s.SourceSecNames = v
		Data = append(Data, s)
	}
	return Data
}

func (source *Source) AddSourceM() bool {
	//source := new(Source)
	_, err := conf.MasterDB.Insert(source)
	if commons.CheckErr(err) {
		return true
	}
	return false

}
func (source *Source) UpdateSourceM() bool {
	update, err := conf.MasterDB.Where("SourceSecId=?", source.SourceSecId).Update(source)
	fmt.Println(update)
	if commons.CheckErr(err) {
		return true
	}
	return false
}

func (source *Source) DeleteSourceM() bool {
	update, err := conf.MasterDB.Where("SourceSecId=?", source.SourceSecId).Delete(source)
	fmt.Println(update)
	if commons.CheckErr(err) {
		return true
	}
	return false
}
